Apache Derby একটি এমবেডেবল ডেটাবেস সিস্টেম হলেও, এটি একটি নেটওয়ার্ক সার্ভার মডেলও সমর্থন করে, যার মাধ্যমে আপনি একটি দূরবর্তী সার্ভার থেকে ডেটাবেস অ্যাক্সেস করতে পারেন। এর মাধ্যমে আপনি অনেক ক্লায়েন্ট অ্যাপ্লিকেশন একযোগে ডেটাবেসে সংযোগ করতে পারেন। এই সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা বিষয়টি খুবই গুরুত্বপূর্ণ। নিচে Apache Derby নেটওয়ার্ক সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা সম্পর্কিত কিছু গুরুত্বপূর্ণ বিষয় আলোচনা করা হলো।
১. Apache Derby Network Server Setup
Apache Derby-এ নেটওয়ার্ক সার্ভার চালু করার জন্য আপনাকে startNetworkServer স্ক্রিপ্টটি চালাতে হবে। এটি সার্ভারটি শুরু করবে এবং আপনি ডেটাবেসে সংযোগ স্থাপন করতে পারবেন।
Network Server চালু করা
startNetworkServer.bat (Windows) বা startNetworkServer.sh (Linux/Mac) ফাইলটি চালান:
Windows:
C:\derby\bin\startNetworkServer.batLinux/Mac:
$DERBY_HOME/bin/startNetworkServer.shসার্ভার চালু হওয়ার পরে, এটি 1527 পোর্টে ডেটাবেস সার্ভিস চালু করবে (যেটি ডিফল্ট পোর্ট)।
Network Server বন্ধ করা
সার্ভারটি বন্ধ করতে stopNetworkServer স্ক্রিপ্ট ব্যবহার করুন:
Windows:
C:\derby\bin\stopNetworkServer.bat
Linux/Mac:
$DERBY_HOME/bin/stopNetworkServer.sh
২. Remote Client Connection
একবার সার্ভার চালু হলে, আপনি JDBC (Java Database Connectivity) ব্যবহার করে দূরবর্তী ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সার্ভারের সঙ্গে সংযোগ স্থাপন করতে পারবেন। উদাহরণস্বরূপ:
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/myDB;user=myUser;password=myPass");
এখানে:
localhost: সার্ভারের হোস্টনেম বা আইপি অ্যাড্রেস1527: ডিফল্ট পোর্ট নম্বরmyDB: ডেটাবেসের নামmyUserএবংmyPass: ডেটাবেসের ইউজারনেম এবং পাসওয়ার্ড
৩. Apache Derby Security Configurations
Apache Derby-এ নিরাপত্তা ব্যবস্থাপনা কিছুটা সীমিত হলেও, এটি মৌলিক নিরাপত্তা ব্যবস্থা যেমন ইউজার অথেনটিকেশন, পাসওয়ার্ড সুরক্ষা এবং ডেটাবেস অ্যাক্সেস কন্ট্রোল সাপোর্ট করে।
ব্যবহারকারীর অনুমতি নির্ধারণ (User Authentication)
আপনি Apache Derby-এ ইউজার অথেনটিকেশন কনফিগার করে ডেটাবেসে নিরাপদভাবে অ্যাক্সেস প্রদান করতে পারেন। এর জন্য আপনাকে derby.properties ফাইলে ইউজারনেম এবং পাসওয়ার্ড কনফিগার করতে হবে।
derby.authentication.provider=BUILTIN
derby.user.myUser=myPassword
এখানে derby.user.myUser=myPassword দিয়ে আপনি myUser ইউজারের জন্য পাসওয়ার্ড নির্ধারণ করছেন।
এনক্রিপশন সাপোর্ট
Apache Derby ডেটাবেস ফাইল এনক্রিপশন সমর্থন করে, যার মাধ্যমে ডেটাবেস ফাইলগুলোকে নিরাপদ রাখা যায়। আপনি ডেটাবেস তৈরি করার সময় এনক্রিপশন চালু করতে পারেন:
Connection conn = DriverManager.getConnection("jdbc:derby:encryptedDB;create=true;encryptionAlgorithm=AES");
এটি encryptedDB নামক ডেটাবেস তৈরি করবে এবং এটি AES (Advanced Encryption Standard) এলগরিদমের মাধ্যমে এনক্রিপ্ট হবে।
অ্যাক্সেস কন্ট্রোল
Apache Derby-এ Database Security আরও শক্তিশালী করতে, আপনি টেবিল, কলাম বা রো লেভেল অ্যাক্সেস কন্ট্রোল নির্ধারণ করতে পারেন। উদাহরণস্বরূপ, আপনি একটি টেবিল তৈরি করার সময় নির্দিষ্ট ব্যবহারকারীর জন্য অ্যাক্সেস সীমিত করতে পারেন:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL
) AUTHORIZATION 'myUser';
এটি টেবিলটি শুধুমাত্র myUser ইউজার দ্বারা অ্যাক্সেসযোগ্য করে তুলবে।
৪. পোর্ট ফরওয়ার্ডিং এবং ফায়ারওয়াল কনফিগারেশন
Apache Derby সার্ভারটি একাধিক ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য করতে, আপনাকে সঠিকভাবে পোর্ট ফরওয়ার্ডিং কনফিগার করতে হবে এবং আপনার সার্ভারের ফায়ারওয়াল সঠিকভাবে কনফিগার করতে হবে যাতে 1527 পোর্টে সংযোগ স্থাপন করা যায়।
পোর্ট ফরওয়ার্ডিং কনফিগারেশন
যদি আপনি আপনার সার্ভারটি ক্লাউড বা অন্য কোন রিমোট সার্ভারে হোস্ট করেন, তবে আপনাকে 1527 পোর্টটি ফরওয়ার্ড করতে হবে যাতে দূরবর্তী ক্লায়েন্টগুলি এই পোর্টের মাধ্যমে সার্ভারে সংযোগ স্থাপন করতে পারে।
ফায়ারওয়াল কনফিগারেশন
ফায়ারওয়াল সেটিংস নিশ্চিত করুন যে, 1527 পোর্টটি খোলা রয়েছে এবং শুধুমাত্র অনুমোদিত IP অ্যাড্রেস থেকে অ্যাক্সেস করা যাবে।
৫. Apache Derby Performance Tuning
Apache Derby-এর পারফরম্যান্স অপটিমাইজ করার জন্য কিছু কার্যকরী কনফিগারেশন রয়েছে:
- Memory Settings: ইন-মেমরি ডেটাবেস কনফিগার করতে
derby.system.homeপ্রোপার্টি ব্যবহার করুন, যা ডেটাবেস ফাইল সংরক্ষণে সাহায্য করবে। - Transaction Log: ডেটাবেসে ট্রানজেকশন লগিং চালু করে আপনি ডেটাবেসের পারফরম্যান্স ট্র্যাক করতে পারবেন।
উপসংহার
Apache Derby নেটওয়ার্ক সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা একটি গুরুত্বপূর্ণ বিষয়, বিশেষ করে যখন এটি একটি প্রোডাকশন পরিবেশে ব্যবহৃত হয়। ডেটাবেস অ্যাক্সেস কন্ট্রোল, ইউজার অথেনটিকেশন, এনক্রিপশন এবং ফায়ারওয়াল কনফিগারেশন দ্বারা আপনি Apache Derby ডেটাবেসের নিরাপত্তা নিশ্চিত করতে পারেন। এছাড়া, নেটওয়ার্ক সার্ভার পরিচালনার মাধ্যমে একাধিক ক্লায়েন্ট অ্যাপ্লিকেশন একই সার্ভারে সংযোগ স্থাপন করতে সক্ষম হয়।